package main

/*
* Content: log包
* --------------------------------------------------
* 如何在 Go 中使用日志包: https://juejin.cn/post/7088342353638850567
 */

import (
	"errors"
	"fmt"
	"log"
)

func myDiv(x float64, y float64) (float64, error) {
	if y == 0 {
		return 0, errors.New("被除数不能为0")
	}
	return x / y, nil
}

func MyBagLog() {

	// log包
	fmt.Println("--------------------log包--------------------")
	// 基本的日志项包括：前缀、日期时间戳、该日志由哪个源文件记录的、源文件记录日志所在行，最后是日志消息。

	// 日志使用
	x := 128.2
	y := 0.0
	res, err := myDiv(x, y)
	if err != nil {
		log.Print(err) // Print 写到标准日志记录器
	}
	fmt.Printf("计算结果是: %v\n", res)

	// Fatal函数: 输出日志后直接退出
	res2, err2 := myDiv(x, y)
	if err2 != nil {
		//log.Fatal(err2) // Print 写到标准日志记录器
	}
	fmt.Printf("计算结果是: %v\n", res2)

	// Panic函数: 在写入日志消息后调用 panic，除非程序执行 recover() 函数
	res3, err3 := myDiv(x, y)
	if err2 != nil {
		log.Panic(err3) // Print 写到标准日志记录器
	}
	fmt.Printf("计算结果是: %v\n", res3)

}
